class Expression
  attr_accessor :lhs, :op, :rhs
  
  def initialize(lhs, op, rhs)
    @lhs = lhs
    @op = op
    @rhs = rhs
    @var_type = nil
  end
  
  def var_type
    if(@var_type.nil?)
      # TODO: Calculate type (Default to LHS type for now)
      case(@lhs.class)
      when Expression:
        @var_type = @lhs.var_type
      when Array:
        puts @lhs.inspect
      end
    end
    return @var_type
  end
end